详解Linux切换用户su指令误区 | 您所在的位置:网站首页 › linux 更换用户命令 › 详解Linux切换用户su指令误区 |
1.背景为了安全起见,通常在Linux环境下进行的一般作业建议使用一般账号 这是因为root账号的权限过于庞大,常常会因为不小心的误操作导致系统错误,严重了还会致使系统瘫痪、崩溃。 因此建议只有在需要时才切换到root账号下进行相关操作。 su是Linux环境下切换用户的操作指令 2.su指令很多朋友在使用该指令时,往往使用如下形式: 例:从一般账号moonlit切换到root账号 $ su 那么这么做有什么不对的地方么? 我们这就来观察下账号切换前后的数据对比。 [moonlit@host ~] $ 切换前执行下列语句,查看环境中包含moonlit的变量: $ env | grep 'moonlit' 屏幕显示如下: USER=moonlitMAIL=/var/spool/mail/moonlitPATH=/usr/java/jdk1.7.0_60/bin:/usr/lib64/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/moonlit/binPWD=/home/moonlitHOME=/home/moonlitLOGNAME=moonlit 执行切换: $ su Password: 输入密码后屏幕转换为: [root@host ~] # 输入#pwd查看当前路径 /home/moonlit 咦,怎么还是在moonlit账号的家目录下? 再输入# env | grep 'moonlit' 屏幕输出: USER=moonlitPATH=/usr/java/jdk1.7.0_60/bin:/usr/lib64/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/moonlit/binMAIL=/var/spool/mail/moonlitPWD=/home/moonlitLOGNAME=moonlit 看到了吧?环境木有变啊。 因为没有改变成root的环境,可能造成很多root指令错误或者无效哦。 想要完全转换用户到root可以用如下指令: [moonlit@host ~]$ su - 键入root密码后变为[root@host ~]# #pwd一下: /root 再# env | grep 'moonlit'一下: 神马都没有哦。 # env一下: 这时候屏幕会将变量全部显示出来,比较多,不一一列举了,可以看到当前的家目录、PATH、MAIL等等已经全部却换为root的变量了。 最后,你可以下达#exit来退出当前root用户返回moonlit。 3.总结其实没有-的时候系统是按照non-login shell的方式切换用户的, 而加上-时,系统是按照login shell切换的。 本文永久更新链接地址:http://www.linuxidc.com/Linux/2015-01/112499tm |
CopyRight 2018-2019 实验室设备网 版权所有 |